#include <stdio.h>
#include <assert.h>

//1.const
//2.assert
//3.size_t
size_t my_strlen(const char *arr) { //定义返回无符号整型的函数
    assert (arr); //assert (arr) == assert (arr != NULL);空指针为假所以不继续执行
    size_t count = 0;
    for (count = 0; *arr++ != '\0'; count++) { ;
    }
    return count; //永远是非负数，返回无符号整型
}

size_t Strlen(const char *arr) { //标准的strlen函数
    assert (arr); //防止空指针
    const char *ret = arr;
    while (*ret++); //*ret == '\0'时为假，不继续循环
    return (ret - arr - 1); //当*ret == '\0'时，ret仍会往后加一个，所以这里 -1;
}

int main() {
    char arr[] = "Hello World!";
    printf("%lu", my_strlen(arr));
    return 0;
}